/*
  any      任意类型
  unknown  不知道类型
  void     空值 -> 特指函数没有返回值
  never    用不存在的值（死循环、报错）
*/

let a: any = 123;
a = "str";
a = false;
a.push(); // a为任意类型，拥有所有类型的方法

let b: unknown = 123;
b = [];
b.push(); // 不知道b是什么类型，不确定有没有push方法
(b as string[]).push(); // unknown类型必须结合类型断言一起使用
